A remote desktop (also known as a virtual desktop), such as Citrix application virtualization and Microsoft Application Virtualization (APP-V), is commonly used to implement remote running of an application program. In a virtual desktop scenario, there is at least one server and one client. A user remotely logs in, from the client via a communications network such as an Internet Protocol (IP) network, to a remote device such as the server by using client software of a remote login application program such as a remote login application program (mstsc.exe) on a Windows system. This manner enables content displayed on a screen of the client to be transmitted to a screen of the server for display, and may further support voice transmission, mapping of pluggable hardware, or the like between the client and the server. In addition, after remote running is ended, latest data obtained according to a remote running result of an application program can be saved onto the server.
Generally, a diskless workstation can be used to implement remote desktop-based remote running of an application program. Instead of mounting a hard disk to a client, a preboot execution environment (PXE) technology is used to map a disk image file on a server to the client, and to generate a virtual hard disk and mount it to the client. The user can run an operating system and various application programs on the virtual hard disk, and access hardware resources on the server and read and write data on the server by using a network.
In addition, a Remote Procedure Call Protocol (RPC) technology can also be used to implement the remote desktop-based remote running of an application program. After an application program and data required for running the application program are installed on the client, the client directly requests a service from an application program on a remote device by means of remote interface invocation, without a need to know a protocol of an underlying network technology. However, this manner requires that an application program on the client and the server adapt to a network protocol on a software code level. Therefore, not all existing application programs can smoothly support remote startup and running, resulting in poor compatibility.
In conclusion, all the methods for remotely running an application program based on the remote desktop technology need to transmit data between a client and a server during remote running of the application program. For some graphics processing or numerical calculation application programs that involve complex execution, such as high-definition graphics drawing and games, a larger amount of data needs to be transmitted, which not only occupies higher network bandwidth and reduces running efficiency in remote running of the application programs, but also may incur distortion during data transmission and compression, and encoding and decoding. Consequently, remotely running an application program cannot achieve effects the same as those achieved when the application program is run locally on the server, leading to poor user experience. In addition, the foregoing remote running of an application program that is implemented based on the remote desktop technology involves a more complex network deployment manner and a more complex technology implementation process.